home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C++ / Applications / Nuntius 1.2 / src / Nuntius / UObjectCache.h < prev    next >
Encoding:
Text File  |  1994-02-20  |  1.2 KB  |  43 lines  |  [TEXT/MPS ]

  1. // Copyright © 1992 Peter Speck, speck@dat.ruc.dk. All rights reserved.
  2. // UObjectCache.h
  3.  
  4. #define __UOBJECTCACHE__
  5.  
  6. // methods are not made pure virtual as CFront is too verbose about it (pascalobject)
  7. class TObjectCache : public TEventHandler
  8. {
  9.     public:
  10.         virtual void FlushCache();
  11.         
  12.         virtual pascal Boolean DoIdle(IdlePhase phase);
  13.         
  14.         virtual void SetObjectCacheParams(long maxNoCachedObjects, long maxIdleTime);
  15.         // if maxIdleTime is kMaxIdleTime, idle free is disabled
  16.         
  17.         TObjectCache();
  18.         virtual pascal void Initialize();
  19.         void IObjectCache();
  20.         // no idle if kMaxIdleTime
  21.         virtual pascal void Free();
  22.     protected:
  23.         TList *fObjectsInUseList;
  24.         TList *fFreeObjectsList;
  25.         TLongintList *fTimeWhenCachedList;
  26.         long fMaxIdleTime;
  27.         long fMaxNoCachedObjects;
  28.         Boolean fCoHandlerInstalled;
  29.         
  30.         virtual TObject *CreateNewObject(); // = 0
  31.         virtual const char *GetObjectName(); // only for debug
  32.  
  33.         virtual TObject *GetObject();
  34.         virtual void ReturnObject(TObject *obj); // cannot fail
  35.         virtual void DiscardObject(TObject *obj); // when obj cannot be reused
  36.         // it's allowed to return/discard nil objects
  37.  
  38.         virtual long GetNoCachedObjects();
  39.         virtual long GetNoActiveObjects();
  40.         
  41.         virtual void CheckIdleTime();
  42. };
  43.